package io.geekidea.boot.test.service;

import com.baomidou.mybatisplus.extension.service.IService;
import io.geekidea.boot.framework.page.Paging;
import io.geekidea.boot.test.dto.CarsDto;
import io.geekidea.boot.test.entity.Cars;
import io.geekidea.boot.test.query.CarsQuery;
import io.geekidea.boot.test.vo.CarsVo;
import io.geekidea.boot.test.query.AppCarsQuery;
import io.geekidea.boot.test.vo.AppCarsVo;


/**
 * 车辆 服务接口
 *
 * @author geekidea
 * @since 2025-03-26
 */
public interface CarsService extends IService<Cars> {

    /**
     * 添加车辆
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean addCars(CarsDto dto);

    /**
     * 修改车辆
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean updateCars(CarsDto dto);

    /**
     * 删除车辆
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deleteCars(Long id);

    /**
     * 车辆详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    CarsVo getCarsById(Long id);

    /**
     * 车辆分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<CarsVo> getCarsPage(CarsQuery query);

    /**
     * App车辆详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    AppCarsVo getAppCarsById(Long id);

    /**
     * App车辆分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<AppCarsVo> getAppCarsPage(AppCarsQuery query);

}
